Embodiments of the inventive concepts relate to a semiconductor memory device, and more particularly, to a memory controller for controlling a non-volatile memory device, a memory system including the same, and a program control method thereof.
Memory devices are classified into volatile memory devices and non-volatile memory devices. Volatile memory devices include dynamic random access memory (DRAM) and static random access memory (SRAM). Non-volatile memory devices include flash memory, electrically erasable programmable read-only memory (EEPROM), and resistive memory.
A non-volatile memory device, for example, a flash memory device, is designed in a multi-plane type in order to increase a storage capacity. A multi-plane type non-volatile memory device includes a plurality of planes, each of which includes a plurality of memory blocks.
A host may request a non-volatile memory device to perform a read operation, a program operation, and an erase operation. When the program operation is requested, logical addresses corresponding to data to be programmed may be sequential in some occasions but may not be sequential in other occasions. For instance, when data at independent areas in the host are requested to be programmed, logical addresses may not be sequential.
When logical addresses of data are sequential, programming time can be shortened by using a multi-plane operation allowing the simultaneous programming of pages respectively corresponding to the sequential logical addresses, one in each plane.
However, when the multi-plane operation is used for data whose logical addresses are not sequential, it is relatively hard to shorten the programming time. Further, an amount of data the memory controller has to write in relation to the amount of data that the host has to write known as a write amplification factor (WAF) increases.